function yes_or_no {
    local prompt="$1"
    local default="${2:-}" # Optional default value (y/n)
    local yn
    
    while true; do
        if [ -z "$default" ]; then
            read -p "$prompt [y/n]: " yn
        else
            read -p "$prompt [Y/n]: " yn
            yn=${yn:-$default}
        fi
        
        case $yn in
            [Yy]* ) 
                return 0
                ;;
            [Nn]* )
                return 1
                ;;
            * )
                echo "Please answer yes or no."
                ;;
        esac
    done
}

